Мы переходим за пределы возможностей линейных моделей, которые испытывают трудности при классификации данных, неразделимых прямой линией. Сегодня мы применяем рабочий процесс PyTorch для создания глубокой нейронной сети (ГНС) способной изучать сложные нелинейные границы решений необходимые для решения реальных задач классификации.
1. Визуализация необходимости нелинейных данных
Наш первый шаг — создать сложный синтетический набор данных, например, распределение двух полумесяцев, чтобы наглядно продемонстрировать, почему простые линейные модели терпят неудачу. Эта настройка вынуждает нас использовать глубокие архитектуры для приближения необходимой сложной кривой, разделяющей классы.
Свойства данных
- Структура данных: Синтетические признаки данных (например, $1000 \times 2$ для $1000$ образцов с 2 признаками).
- Тип выходных данных: Одно значение вероятности, часто
torch.float32, отражающее принадлежность к классу. - Цель: Создать кривую границу решений с помощью многослойных вычислений.
Сила нелинейных активаций
Основной принцип ГНС — введение нелинейности в скрытых слоях с помощью функций, таких как ReLU. Без них последовательное наложение слоёв просто приведёт к одной большой линейной модели, независимо от глубины.
TERMINALbash — classification-env
> Ready. Click "Run" to execute.
>
TENSOR INSPECTOR Live
Run code to inspect active tensors
Question 1
What is the primary purpose of the ReLU activation function in a hidden layer?
Question 2
Which activation function is required in the output layer for a binary classification task?
Question 3
Which loss function corresponds directly to a binary classification problem using a Sigmoid output?
Challenge: Designing the Core Architecture
Integrating architectural components for non-linear learning.
You must build a
nn.Module for the two-moons task. Input features: 2. Output classes: 1 (probability).
Step 1
Describe the flow of computation for a single hidden layer in this DNN.
Solution:
Input $\to$ Linear Layer (Weight Matrix) $\to$ ReLU Activation $\to$ Output to Next Layer.
Input $\to$ Linear Layer (Weight Matrix) $\to$ ReLU Activation $\to$ Output to Next Layer.
Step 2
What must the final layer size be if the input shape is $(N, 2)$ and we use BCE loss?
Solution:
The output layer must have size $(N, 1)$ to produce a single probability score per sample, matching the label shape.
The output layer must have size $(N, 1)$ to produce a single probability score per sample, matching the label shape.